#pragma once

#include "IGameState.h"
#include "../SGD Wrappers/SGD_Declarations.h"
#include "../SGD Wrappers/SGD_Geometry.h"
#include <string>
#include "../SGD Wrappers/SGD_Handle.h"

class Menu;
class MenuCursor;

class LoadState : public IGameState
{
public:
	//Singleton accessor
	static LoadState* GetInstance();

	//IGameStateInterface
	virtual void Enter() override; //load resources
	virtual void Exit() override; //unload resources
	virtual bool Input() override; //handle user input
	virtual void Update(float elapsedTime) override; //update entities
	virtual void Render() override; //render entities/menu items

private:
	LoadState() = default;
	virtual ~LoadState() = default;
	LoadState(const LoadState&) = delete;
	LoadState& operator=(const LoadState&) = delete;

	Menu* menu = nullptr;
	MenuCursor* cursor = nullptr;
	Menu* loadOptions;
	MenuCursor* loadCurs;
	int cursPos = 0;
	int loadCPos = 0;
	std::string saveToLoad;
	bool loadDLG = false;
	bool mouseInput = false;
	//SGD Handles
	SGD::HTexture background = SGD::INVALID_HANDLE;

};

